package com.ctshk.rpc.order.goods.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 *
 * </p>
 *
 * @author 李新科
 * @date 2021/5/21 11:02
 */
@Data
@ApiModel(value="订单DTO实体")
public class ShopOrderEsDTO implements Serializable {

    @ApiModelProperty(value="id",position = 1)
    private Long id;

    @ApiModelProperty(value="订单用户id")
    private Long createId;

    @ApiModelProperty(value = "订单编号",position = 2)
    private String OrderNumber;

    @ApiModelProperty(value="类型,从SystemBusinessType类取值，1.2旅行团 6.7自由行 8.酒店 9.机票 10.火车票 11.船票 12.巴士票 13.机场快线 14.景点门票 15.当地玩乐 18.商品",position = 3)
    private Integer type;

    @ApiModelProperty(value="币种",position = 4)
    private String currency;

    @ApiModelProperty(value="订单总额",position = 5)
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "订单状态,取AppOrderStatus枚举值:1.待付款,2.您已下單，等待確認,3.已付款,4.待发货,5.已发货,6.待收货,7.待提货,8.预订失败,9.超时未付款,订单已取消,10.已完成,11.待处理,12.待退款,13.已退款",position = 6)
    private Integer orderStatus;

    @ApiModelProperty(value = "预订状态",position = 7)
    private Integer scheduledStatus;

    @ApiModelProperty(value = "退款状态",position = 8)
    private Integer cancelStatus;

    @ApiModelProperty(value = "付款到期日期时间",position = 9)
    private LocalDateTime payExpireDateTime;

    @ApiModelProperty(value = "订单创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value="英文全名")
    private String enFullName;

    @ApiModelProperty(value="是否星赏会会员,0否1是")
    private Integer isInternalMember;

    @ApiModelProperty(value="中旅网注册时间")
    private LocalDateTime registerTime;

    // 各单项公共字段↑

    // 各单项专属字段↓

    // 旅行团 start
    @ApiModelProperty(value = "旅行团-订单",position = 11)
    private TripOrderEsDTO tripOrder;
    // 旅行团 end

    // 酒店 start
    @ApiModelProperty(value = "酒店-订单",position = 12)
    private HotelOrderEsDTO hotelOrder;
    // 酒店 end

    // 机票 start
    @ApiModelProperty(value = "机票-订单",position = 13)
    private AirOrderEsDTO airOrder;
    // 机票 end

    // 火车票 start
    @ApiModelProperty(value = "火车票-订单",position = 14)
    private TrainOrderEsDTO trainOrder;
    // 火车票 end

    // 巴士票 start
    @ApiModelProperty(value = "巴士票-订单",position = 15)
    private BusOrderEsDTO busOrder;
    // 巴士票 end

    // 船票 start
    @ApiModelProperty(value = "船票-订单",position = 16)
    private ShipOrderEsDTO shipOrder;
    // 船票 end

    // 门票 start
    @ApiModelProperty(value = "门票-订单",position = 17)
    private ScenicOrderEsDTO scenicOrder;
    // 门票 end

    // 自由行 start
    @ApiModelProperty(value = "自由行-订单",position = 18)
    private SeasonOrderEsDTO seasonOrder;
    // 自由行 end

    // 当地玩乐 start
    @ApiModelProperty(value = "当地玩乐-订单",position = 19)
    private LocalFunOrderEsDTO localFunOrder;
    // 当地玩乐 end

    // 商品 start
    @ApiModelProperty(value = "商品-订单",position = 20)
    private CommodityOrderEsDTO commodityOrder;
    // 商品 end

    // 机场快线 start
    @ApiModelProperty(value = "机场快线-订单",position = 21)
    private AirportExpressOrderEsDTO airportExpressOrder;
    // 机场快线 end
}
